剑指offer四十九之把字符串转换成整数
一、题目
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
二、思路
详见代码。
三、代码
public class Solution { public static int StrToInt(String str) { //初始条件判断 if (str.equals("") || str.length() == 0) return 0; char[] a = str.toCharArray(); int fuhao = 0; if (a[0] == '-') fuhao = 1; int sum = 0; for (int i = fuhao; i < a.length; i++) { if (a[i] == '+') //如果有符号,例如"-+++++",则都跳过 continue; if (a[i] < 48 || a[i] > 57) //如果字符不是‘0’到‘9’ return 0; sum = sum * 10 + a[i] - 48;//字符求和 } return fuhao == 0 ? sum : sum * -1;//判断为正数还是负数 } }
---------------------------------------------
参考链接:
https://www.nowcoder.com/questionTerminal/1277c681251b4372bdef344468e4f26e